package com.tsmti.activiti.utils;

/**
 * @Package：com.tsmti.activiti.utils
 * @Class：ActConstants
 * @Description： TODO
 * @Author：zcw
 * @Date：Created in 2018/8/1 15:57
 * @Company:
 * @Version：
 * @Modified By:
 */
public class ActConstants {
    /**
     * 超级用户
     */
    public static final String SUPERR_USER="admin";
    /**
     * 流程会签集合名称
     */
    public static final String ACT_MUIT_LIST_NAME="users";

    /**
     * 流程会签变量名称
     */
    public static final String ACT_MUIT_VAR_NAME="user";

    /**
     * 业务表单字段信息
     * */
    public static final String ACT_BUSINESS_TABLENAME = "tableName";
    public static final String ACT_BUSINESS_PRIMARYKEY = "pkName";
    public static final String ACT_BUSINESS_PRIMARYKEYVALUE = "pkValue";
    public static final String ACT_BUSINESS_INSTANCEID = "instanceId";
    public static final String ACT_BUSINESS_ACTSTATUS = "actStatus";
    public static final String ACT_BUSINESS_ACTRESULT = "actResult";
    public static final String ACT_BUSINESS_STARTUSER = "startUserId";
    public static final String ACT_BUSINESS_STARTTIME = "startTime";
    public static final String ACT_BUSINESS_CODE = "code";
    public static final String ACT_BUSINESS_FIELDS = "fields";
    /**
     * 流程节点类型
     */
    public enum NodeType {
        /*** 开始节点*/
        START("1"),
        /*** 审批节点*/
        EXAMINE("2"),
        /*** 分支*/
        BRUNCH("3"),
        /*** 连线*/
        LINE("4"),
        /*** 结束*/
        END("5");

        private String value;

        private NodeType(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 审批者类型
     */
    public enum ExamineType {
        /*** 用户*/
        USER("1"),
        /*** 角色*/
        ROLE("2"),
        /*** 组织*/
        ORGAN("3"),
        /*** 医生*/
        DOCTOR("4"),
        /** 表单字段*/
        BILLUSER("5");
        private String value;

        private ExamineType(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 业务树类型
     */
    public enum ActBusType {
        /*** 根节点*/
        ROOT("1"),
        /*** 分组*/
        GROUP("2"),
        /*** 业务类*/
        BUS("3"),
        /*** 回调*/
        BACK("4");

        private String value;

        private ActBusType(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 审批节点行为
     */
    public enum ActAction {
        /*** 审批*/
        APPROVE("1"),
        /*** 会签*/
        MULIT("2");

        private String value;

        private ActAction(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 流程状态
     */
    public enum ActStauts {
        /*** 草稿*/
        DRAFT("1"),
        /*** 审批中*/
        APPROVAL("2"),
        /*** 结束*/
        END("3");

        private String value;

        private ActStauts(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 流程任务审批结果
     */
    public enum ActTaskResult {
        /*** 同意*/
        AGREE("1"),
        /*** 反对*/
        NO_AGREE("2"),
        /*** 弃权*/
        ABSTAINED("3"),
        /*** 驳回*/
        TURN_DOWN("4"),
        /*** 转办*/
        TURN_DO("5");

        private String value;

        private ActTaskResult(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 整个流程的审批结果
     */
    public enum ActResult {
        /*** 同意*/
        AGREE("1"),
        /*** 不同意*/
        NO_AGREE("2"),
        /*** 审批中*/
        DISAGREE("3");

        private String value;

        private ActResult(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 流程办理任务，和查询流程审批信息控件显示
     */
    public enum ActFlowDoView {
        /*** 查看审批过程*/
        SHOW_FLOW("1"),
        /*** 办理任务*/
        DO_TASK("2");

        private String value;

        private ActFlowDoView(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 数据权限
     */
    public enum DataAuth {
        /*** 部门数据权限*/
        BA_DATA("1"),
        /*** 机构数据权限*/
        BAP_DATA("2"),
        /*** 部门机构数据权限*/
        ALL_DATA("3");

        private String value;

        private DataAuth(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }
}
